header {
    #include <sstream>
    #include <iostream>
    #include <QDomDocument>
    #include <QStringList>
    #include "UnicodeCharBuffer.hpp"
    #include "UnicodeCharScanner.hpp"
}

options {
    language="Cpp";
}

class MplParser extends Parser;

options {
    buildAST = true;
    importVocab=Mpl;
    k = 2;
}


mpl_class_definition:
    {}
    CLASS_KEYOWRD BLOCK_BEGIN (mpl_attriubte_definition)+ BLOCK_END SENTENCE_END
    {};

mpl_attriubte_definition:
    {}
    mpl_type WORD SENTENCE_END
    {};

mpl_anotation:
    {}
    ANOTATIONBEGIN (WORD)+ ANOTATIONEND
    {};

mpl_type:
    {}
    (mpl_type_int | mpl_type_string )
    {};


mpl_type_int:
    {}
    MPL_TYPE_INT
    {};

mpl_type_string:
    {}
    MPL_TYPE_STRING
    {};